অ্যাক্সেস মডিফায়ার: private, public, protected

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming) অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) |
252
252

অ্যাক্সেস মডিফায়ার হলো প্রোগ্রামিংয়ে ব্যবহৃত এমন কিছু কীওয়ার্ড যা ক্লাসের ভেরিয়েবল এবং মেথডের অ্যাক্সেসibilটিকে নিয়ন্ত্রণ করে। সি++ এ তিন ধরনের অ্যাক্সেস মডিফায়ার রয়েছে: private, public, এবং protected। এগুলি ক্লাসের সদস্যদের অ্যাক্সেস সীমা নির্ধারণ করে এবং প্রোগ্রামে ডেটা সুরক্ষায় গুরুত্বপূর্ণ ভূমিকা পালন করে।

১. private অ্যাক্সেস মডিফায়ার

private অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত কোনো মেম্বার ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। শুধুমাত্র ক্লাসের ভেতর থেকে এবং ক্লাসের মেথডের মাধ্যমেই এই ধরনের মেম্বারগুলো অ্যাক্সেস করা সম্ভব। এটি ডেটাকে সুরক্ষিত রাখতে সাহায্য করে।

উদাহরণ:

#include <iostream>
using namespace std;

class Car {
private:
    int year; // private মেম্বার

public:
    void setYear(int y) { // setter মেথড
        year = y;
    }

    int getYear() { // getter মেথড
        return year;
    }
};

int main() {
    Car myCar;
    myCar.setYear(2020); // setYear এর মাধ্যমে year সেট করা হচ্ছে
    cout << "Year: " << myCar.getYear() << endl; // getYear এর মাধ্যমে year পাওয়া যাচ্ছে
    return 0;
}

ব্যাখ্যা:

  • এখানে year ভেরিয়েবলটি private, তাই সরাসরি myCar.year দ্বারা সেটি অ্যাক্সেস করা যাবে না।
  • setYear এবং getYear মেথডগুলো ব্যবহার করে year এর মান সেট ও পড়া হচ্ছে।

২. public অ্যাক্সেস মডিফায়ার

public অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেসযোগ্য। এগুলি ক্লাসের যে কোনো অবজেক্ট থেকে অ্যাক্সেস করা যায়।

উদাহরণ:

#include <iostream>
using namespace std;

class Car {
public:
    int year; // public মেম্বার
};

int main() {
    Car myCar;
    myCar.year = 2020; // year সরাসরি অ্যাক্সেস ও সেট করা
    cout << "Year: " << myCar.year << endl;
    return 0;
}

ব্যাখ্যা:

  • এখানে year ভেরিয়েবলটি public, তাই সরাসরি myCar.year দ্বারা সেটি অ্যাক্সেস ও সেট করা সম্ভব।
  • public মেম্বার হিসেবে year সরাসরি ক্লাসের বাইরেও ব্যবহার করা যায়।

৩. protected অ্যাক্সেস মডিফায়ার

protected অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো শুধুমাত্র ক্লাসের ভেতরে এবং সেই ক্লাস থেকে ইনহেরিট করা ক্লাসে অ্যাক্সেসযোগ্য। কিন্তু, ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। এটি ইনহেরিটেন্সের ক্ষেত্রে ডেটা সুরক্ষিত রাখতে সহায়ক।

উদাহরণ:

#include <iostream>
using namespace std;

class Vehicle {
protected:
    string brand; // protected মেম্বার
public:
    void setBrand(string b) {
        brand = b;
    }
};

class Car : public Vehicle {
public:
    void display() {
        cout << "Brand: " << brand << endl; // protected মেম্বার subclass এ অ্যাক্সেসযোগ্য
    }
};

int main() {
    Car myCar;
    myCar.setBrand("Toyota");
    myCar.display(); // Displaying the brand
    return 0;
}

ব্যাখ্যা:

  • এখানে brand মেম্বারটি protected, যা Vehicle ক্লাসের Car ইনহেরিটেড ক্লাস থেকে অ্যাক্সেসযোগ্য।
  • setBrand মেথডটি ব্যবহার করে brand এর মান সেট করা হয়েছে, যা display মেথডে অ্যাক্সেসযোগ্য।

সংক্ষিপ্ত তুলনা

অ্যাক্সেস মডিফায়ারক্লাসের ভিতরেইনহেরিটেড ক্লাসেক্লাসের বাইরে
private✔️
protected✔️✔️
public✔️✔️✔️

অ্যাক্সেস মডিফায়ার ব্যবহার করার উপকারিতা

  1. ডেটা সুরক্ষা: অ্যাক্সেস মডিফায়ার ব্যবহার করে ডেটা মেম্বার এবং মেথডের অ্যাক্সেসibilটিকে নিয়ন্ত্রণ করা যায়, যা ডেটা সুরক্ষিত রাখে।
  2. ক্লাসের সংজ্ঞা ও ব্যবহার পৃথক করা: ক্লাসের অভ্যন্তরীণ কার্যক্রম এবং বাইরের ব্যবহারের মধ্যে পার্থক্য তৈরি করতে সাহায্য করে।
  3. কোডের মডুলারিটি বৃদ্ধি: অ্যাক্সেস মডিফায়ার ব্যবহার করে কোডকে আরও মডুলার এবং সহজে ব্যবস্থাপনা করার উপযোগী করে তোলা যায়।

সারসংক্ষেপ

অ্যাক্সেস মডিফায়ার সি++ এ ডেটা এবং মেথডের অ্যাক্সেসibilটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। private মেম্বার শুধুমাত্র ক্লাসের ভিতরে অ্যাক্সেসযোগ্য, protected মেম্বার ক্লাসের ভিতরে এবং ইনহেরিটেড ক্লাসে অ্যাক্সেসযোগ্য, এবং public মেম্বার ক্লাসের বাইরেও অ্যাক্সেসযোগ্য। অ্যাক্সেস মডিফায়ার প্রোগ্রামের ডেটা সুরক্ষা এবং সঠিক ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion